package com.jzoffer;

import java.util.ArrayList;
import java.util.Arrays;

/*
* 题目描述
输入一个递增排序的数组和一个数字S，在数组中查找两个数，
* 使得他们的和正好是S，如果有多对数字的和等于S，输出两个数的乘积最小的。
* */
public class FindSumSTwoNum {
    public static void main(String[] args) {
        int[] arr ={1,1,2,3,4,5,6,6,7,8,9};
        int sum = 12;
        ArrayList<Integer> numbersWithSum = findNumbersWithSum(arr, sum);
        System.out.println(Arrays.toString(numbersWithSum.toArray()));
    }

    public static ArrayList<Integer> findNumbersWithSum(int [] array, int sum){
        ArrayList<Integer> res = new ArrayList<>();
        if(array == null || array.length < 1){
            return res;
        }
        for (int i = 0; i < array.length ; i++) {
            int cur = array[i];
            int j = i + 1;
            while (j < array.length && cur + array[j] !=  sum){
                if(cur + array[j]  > sum){
                    break;
                }
                j++;
            }
            if(j < array.length && cur + array[j] ==  sum){
                res.add(cur);
                res.add(array[j]);
                break;
            }
        }

        return res;
    }


}
